package xyz.zhouzhaodong.crm.service;

import com.baomidou.mybatisplus.extension.service.IService;
import xyz.zhouzhaodong.crm.dto.CustomerDto;
import xyz.zhouzhaodong.crm.dto.FormDto;
import xyz.zhouzhaodong.crm.entity.Customer;
import xyz.zhouzhaodong.crm.util.RestMessage;

/**
 * <p>
 * 客户表 服务类
 * </p>
 *
 * @author zhouzhaodong
 * @since 2020-06-17
 */
public interface ICustomerService extends IService<Customer> {

    /**
     * 新增客户
     * @param customer
     * @return
     */
    RestMessage addCustomer(Customer customer);

    /**
     * 删除客户
     * @param customer
     * @return
     */
    RestMessage deleteCustomer(Customer customer);

    /**
     * 彻底删除客户
     * @param customer
     * @return
     */
    RestMessage thoroughDelete(Customer customer);

    /**
     * 更新客户
     * @param customer
     * @return
     */
    RestMessage updateCustomer(Customer customer);

    /**
     * 更新客户id
     * @param customer
     * @return
     */
    RestMessage updateStaffId(Customer customer);

    /**
     * 根据id查询信息
     * @param id
     * @return
     */
    RestMessage selectById(String id);

    /**
     * 根据number查询信息
     * @param number
     * @return
     */
    RestMessage selectByNumber(String number);

    /**
     * 查询客户
     * @param customerDto
     * @return
     */
    RestMessage selectCustomer(CustomerDto customerDto);

    /**
     * 待沟通列表查询
     * @param customerDto
     * @return
     */
    RestMessage selectLinkUp(CustomerDto customerDto);

    /**
     * 查询数目
     * @param customerDto
     * @return
     */
    RestMessage selectNum(CustomerDto customerDto);

    /**
     * 修改客户状态
     * @param customer
     * @return
     */
    RestMessage changeType(Customer customer);

    /**
     * 成交列表显示
     * @param customerDto
     * @return
     */
    RestMessage selectCustomerDeal(CustomerDto customerDto);

    /**
     * 待报到列表显示
     * @param customerDto
     * @return
     */
    RestMessage selectCustomerReport(CustomerDto customerDto);

    /**
     * 完成录取列表
     * @param customerDto
     * @return
     */
    RestMessage selectCustomerComplete(CustomerDto customerDto);

    /**
     * 到校列表显示
     * @param customerDto
     * @return
     */
    RestMessage selectCustomerToSchool(CustomerDto customerDto);

    /**
     * 汇总显示
     * @param formDto
     * @return
     */
    RestMessage selectCustomerForm(FormDto formDto);

}
